module all_top(
    input           I_clk           , // 系统50MHz时钟
    input           I_rst_n         , // 系统全局复位
	 //input           I_iic_send_en   , // IIC发送使能位
	 input     [7:0] I_write_data    ,
	 input     [6:0] I_dev_addr,
	 input     [7:0] I_word_addr,
	 input     I_iic_send_en,
	 
	 output    [7:0] rec_data ,        //从机接收的数据
	 output         ack_out_test,               //从机向主机发送的应答信号
	 output          scl_out_test,    ///输出接收的主机时钟线
	 output         sda_out_test     ///输出接收的主机数据线
);

   wire          O_scl         ; // IIC主从的串行时钟线,主向从发出
	wire          O_sda         ; // 从向主输出SDA线
	wire          I_sda         ;  // 主向从输入SDA线
   //wire         sda_zhu   ;
module_send md
(
    .I_clk(I_clk)           , // 系统50MHz时钟
    .I_rst_n(I_rst_n)         , // 系统全局复位
    .I_iic_send_en(I_iic_send_en)   , // IIC发送使能位
    
    .I_dev_addr(I_dev_addr)      , // IIC设备的物理地址
    .I_word_addr(I_word_addr)    , // IIC设备的字地址，即我们想操作的IIC的内部地址
    .I_write_data(I_write_data)   , // 往IIC设备的字地址写入的数据
    //output  reg          O_done_flag     , // 读或写IIC设备结束标志位
    
    // 标准的IIC设备总线
    .O_scl(O_scl)           , // IIC总线的串行时钟线
    .O_sda(O_sda)           , // IIC总线的双向数据线
	 .I_sda(I_sda)            // IIC总线的双向数据线
); 




module_receive re(
   .rst_n(I_rst_n),//复位信号
   .receive_en(I_iic_send_en),//使能信号，使能信号默认：零为空闲状态
	///IIC的数据总线与时钟总线
   .sda_0(O_sda), //输入线
	.scl(O_scl), //时钟线
	.ack(I_sda),   //应答输出信号
	.rec_data(rec_data),
	.ack_out_test(ack_out_test),
	.scl_out_test(scl_out_test),
	.sda_out_test(sda_out_test)
);


endmodule


